Drupal < 7.32 “Drupalgeddon” SQL 注入漏洞 (CVE-2014-3704)
Drupal 是一个免费的开源 Web 内容管理框架,用 PHP 编写并在 GNU 通用公共许可证下分发。
Drupal core 7.x 7.32之前的数据库抽象API中的expandArguments函数没有正确构造prepared statement,这使得远程攻击者可以通过包含精心制作的key的数组进行SQL注入攻击。
启动Drupal 7.31 环境。
漏洞复现
服务器启动后,浏览http://192.168.44.132:8080
查看Drupal安装向导,使用默认配置进行安装。
注意Mysql数据库名称是drupal
,数据库用户名和密码是root
,地址是mysql
:
安装完成后,浏览主页。
SQL 注入不需要身份验证,可以通过发送以下请求来执行恶意 SQL 语句。
1 | POST /?q=node&destination=node HTTP/1.1 |
可以看出,SQL 语句报告了一条包含用户数据的错误消息。